import axios from 'axios'

// 对axios二次封装：

class Axios{
  // 实例属性：axios的实例对象
  axiosInstance = null;

  // 构造函数
  constructor(){
    // 创建axios的实例对象
    this.axiosInstance = axios.create({
      baseURL: process.env.VUE_APP_AXIOS_BASE_URL
    });
  }

  // get方法的封装：结果为promise对象
  get(url, data={}){
    return this.axiosInstance.get(url, {params: data});
  }

  // post方法的封装：结果为promise对象
  post(url, data={}){
    return this.axiosInstance.post(url, data);
  }

  // put方法的封装：结果为promise对象
  put(url, data={}){
    return this.axiosInstance.post(url, data);
  }

  // put方法的封装：结果为promise对象
  patch(url, data={}){
    return this.axiosInstance.post(url, data);
  }

  // put方法的封装：结果为promise对象
  delete(url, data={}){
    return this.axiosInstance.get(url, {params: data});
  }

}

const appAxios = new Axios();
export default appAxios;

// appAxios.get(url, data)
// appAxios.put(url, data)
// appAxios.delete(url, data)
// appAxios.post(url, data)
// appAxios.patch(url, data)